IF exists(SELECT * FROM dbo.sysobjects WHERE name='r_XMLmaandlijstCijfers' AND xtype='P') 
BEGIN
	DROP PROCEDURE r_XMLmaandlijstCijfers
END
GO

CREATE        procedure r_XMLmaandlijstCijfers(@klas varchar(5), @school varchar(50), 
		@periode int, @jaar int)
as
set nocount on

set @klas = isNull(@klas,'')
set @school = isNull(@school,'')
set @periode = isNull(@periode,0)
set @jaar = isNull(@jaar,0)


create table #tussen( tekst varchar(255))
create table #vakken( volgNummer char(2),vak varchar(2))
create table #cijfers(inschrijvingsNr char(7),vak varchar(3), procent int)
create table #gem(inschrijvingsNr char(7),vak varchar(3), procent int)
create table #groepen(groepscode varchar(5))

-- De vakken worden ingevuld:

insert into #vakken(volgNummer,vak)
select distinct volgnummer,vakcode 
  from leraars.dbo.alleKlasVakcodes(@klas)
  order by volgnummer

-- De cijfers worden ingevuld:

if @periode=1  
  begin
    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,procent1
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',procent1
    from R_maandTotaalVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,gemiddelde1
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',gemiddelde1
    from R_maandTotaalVoorRapport where klas = @klas
  end

if @periode=2
  begin
    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,procent2
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',procent2
    from R_maandTotaalVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,gemiddelde2
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',gemiddelde2
    from R_maandTotaalVoorRapport where klas = @klas
  end

if @periode=3
  begin
    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,procent3
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',procent3
    from R_maandTotaalVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,gemiddelde3
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',gemiddelde3
    from R_maandTotaalVoorRapport where klas = @klas
  end

if @periode=4
  begin
    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,procent4
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',procent4
    from R_maandTotaalVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,gemiddelde4
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',gemiddelde4
    from R_maandTotaalVoorRapport where klas = @klas
  end

if @periode=5
  begin
    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,procent5
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #cijfers(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',procent5
    from R_maandTotaalVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,vakcode,gemiddelde5
    from R_maandcijfersVoorRapport where klas = @klas

    insert into #gem(inschrijvingsNr,vak,procent)
    select inschrijvingsNr,'TOT',gemiddelde5
    from R_maandTotaalVoorRapport where klas = @klas
  end

-----------------  OPBOUW DOCUMENT  -----------------------------------

-- De juiste stijl-pagina wordt aan de XML-pagina gelinkt.
insert into #tussen(tekst)
values('<?xml version="1.0"  encoding="ISO-8859-1" ?>')
insert into #tussen(tekst)
values('<?xml-stylesheet type="text/xsl" href="maandLijst.xsl" ?>')

-- De titel en de 
insert into #tussen(tekst)

values('<maandlijst><hoofding><titel>' + @klas + ' Maandresultaten ' + convert(varchar(2),dbo.WEB_rapportPeriode(@klas,@periode)) + 
				'</titel>')
insert into #tussen(tekst)
values('<school>' + @school + '</school>')

insert into #tussen(tekst)
values('<klas>' + @klas + '</klas>')

insert into #tussen(tekst)
values('<per>' + convert(varchar(2), @periode) + '</per>')

insert into #tussen(tekst)
values('<comBestand>' + @klas + 'cm' + convert(varchar(2), @periode) + '.xml</comBestand>')
insert into #tussen(tekst)
values('<periode>Maandresultaten ' + convert(varchar(2),dbo.WEB_rapportPeriode(@klas,@periode))
	+ ' - schooljaar ' + convert(varchar(4),@jaar) + ' - ' +
	+ convert(varchar(4),@jaar + 1) + '</periode>')
insert into #tussen(tekst)
values('<vakken>')

insert into #tussen(tekst)
select '<vak>' + vak + '</vak>'
from #vakken order by volgNummer

insert into #tussen(tekst)
values('<vak>TOT</vak></vakken>')

insert into #tussen(tekst)
values('</hoofding><leerlingen>')

--Een cursor die over de leerlingen van de klas loopt.
declare @inschrijvingsNr char(7)
declare @achternaam varchar(50)
declare @voornaam varchar(50)

declare deCursor cursor local for 
  select inschrijvingsNr,achternaam,voornaam
  from leerlingen.dbo.leerlingen
  where klas= @klas 
  order by klasNr
for read only
open deCursor
fetch next from deCursor into @inschrijvingsNr,@achternaam,@voornaam
while (@@fetch_status=0)
begin

  -- De naam van de leerling wordt ingevoegd
  insert into #tussen(tekst)
  values('<lln><naam>' + isNull(@voornaam,'') + ' ' + isNull(@achternaam,'') + '</naam>')

  -- De vakresultaten van de leerling worden ingevoegd
  insert into #tussen(tekst)
  select '<vak code="' + v.vak + '"><c>' 
	+ case when p.procent is not null and (p.procent >= 0) 
	       then convert(varchar(5),p.procent) else '' end 
	+ '</c></vak>'
  from #vakken as v 
	left join (select * from #cijfers where inschrijvingsNr = @inschrijvingsNr) as p
	on v.vak = p.vak
  order by v.volgNummer

  insert into #tussen(tekst)
  select '<vak code="TOT"><c>' 
	+ case when p.procent is not null and (p.procent >= 0) 
	       then convert(varchar(5),p.procent) else '' end 
	+ '</c></vak>'
  from #cijfers  as p
  where inschrijvingsNr = @inschrijvingsNr and vak = 'TOT'

  -- Afsluiting
  insert into #tussen(tekst)
  values('</lln>')
  
   fetch next from deCursor into @inschrijvingsNr,@achternaam,@voornaam
end

-- Opstellen van de gemiddeldes
  insert into #tussen(tekst)
  values('</leerlingen><gemiddelde>')

  insert into #tussen(tekst)
  select '<vak code="' + v.vak + '"><c>' 
	+ case when procent is not null and (procent >= 0) 
	       then convert(varchar(5),procent) else '' end 
	+ '</c></vak>'
  from #vakken as v
	left join studiebegeleiding.dbo.r_maandVakGemiddelde(@klas,@periode) as g
	on v.vak = g.vak
	order by v.volgNummer

  insert into #tussen(tekst)
  select '<vak code="TOT"><c>' 
	+ case when procent is not null and (procent >= 0) 
	       then convert(varchar(5),procent) else '' end 
	+ '</c></vak>'
  from studiebegeleiding.dbo.r_maandKlasTotaal(@klas,@periode)  
  
  insert into #tussen(tekst)
  values('</gemiddelde></maandlijst>')

select * from #tussen